﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace _201206QuanLyBanHang.ChucNang
{
    public partial class FormNhapTheoList : Form
    {
        FormThongbao fthongbao = new FormThongbao();

        public int MaNhanVien = 0;
        public String MaKhuVuc = "";
        public String TenNhanVien = "";
        public String TenKhuVuc = "";
        //private String MaKH_DonGia = "";
        private String[] strMaSP;
        private SQLCommand msql = new SQLCommand();
        double tienmuasp = 0;
        double tienthanhtoan = 0;
        double tiencongnothangtruoc = 0;

        public FormNhapTheoList()
        {
            InitializeComponent();
        }

        private void FormNhapTheoList_Load(object sender, EventArgs e)
        {
            this.Height = 0;

            //this.Location = new Point(200, 10);
            timer1.Enabled = true;
            dgvdanhsachkhachhang.DataSource = msql.LayDanhSachKhachHang_KhuVuc(MaKhuVuc);
            //Đánh số thứ tự
            for (int i = 0; i < dgvdanhsachkhachhang.RowCount; i++)
            {
                dgvdanhsachkhachhang.Rows[i].Cells["stt"].Value = i + 1;
            }
            //Đưa con trỏ vào vị trí của ô số lượng
            // dgvdanhsachkhachhang.Rows[0].Cells["soluong"].Selected = true;

            //Lấy Mã Sản phẩm
            dgvLoaiSP.DataSource = msql.LayMaSanPham();
            String SanPham = "";
            for (int i = 0; i <= dgvLoaiSP.RowCount - 1; i++)
            {

                DataGridViewCell cellsanpham = dgvLoaiSP.Rows[i].Cells[0];
                if (cellsanpham != null && !String.IsNullOrEmpty(cellsanpham.Value as String))
                {
                    //Có dữ liệu
                    SanPham += cellsanpham.Value.ToString() + " ";
                }
                else
                {
                    //Null
                    SanPham = "";

                }

            }
            this.strMaSP = SanPham.Split(' ');
            //Thay đổi labelTieude
            labelTieude.Text = "Nhập danh sách nhân viên " + TenNhanVien + " bán hàng trên khu vực " + TenKhuVuc;
            String Ngay;
            Ngay = String.Format("{0:dd/MM/yyyy}", dateNgayMua.Value);
            labelTieudeNgay.Text = "Ngày " + Ngay;

            //Hien thi thông tin về các loại sản phẩm để tính Tổng sản phẩm
            dgvTongSanLuong.DataSource = msql.TableMaTenSP();
            for (int i = 0; i < dgvTongSanLuong.RowCount; i++)
                dgvTongSanLuong.Rows[i].Cells["SoLuongTongSanLuong"].Value = "0  kg";

            txtNgayMua.Text = Ngay;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            this.Height += 10;
            if (this.Height > 600)
            {
                timer1.Enabled = false;

            }
        }
        //Thay cái này dùm a minh
        //private void pictureBox1_Click(object sender, EventArgs e)
        //{
        //    this.Close();
        //}

        private void btnLuu_Click(object sender, EventArgs e)
        {
            KhachHangMuaSP khsp = new KhachHangMuaSP();
            int[] TongSanLuong = new int[dgvTongSanLuong.RowCount];
            
            int TongThanhToan = 0;
            //Cập nhật Sản phẩm khách mua, sau này chỉ view lại
            int n = dgvdanhsachkhachhang.RowCount - 1;

            //Kiểm tra dữ liệu nhập vào có chính xác hay ko trước khi lưu
            for (int i = 0; i <= n; i++)
            {
                String SanPham, SoLuong, ThanhToan;
                DataGridViewCell cellsanpham = dgvdanhsachkhachhang.Rows[i].Cells["LoaiSP"];
                if (cellsanpham != null && !String.IsNullOrEmpty(cellsanpham.Value as String))
                {
                    //Có dữ liệu
                    SanPham = cellsanpham.Value.ToString();
                }
                else
                {
                    //Null
                    SanPham = "";

                }
                String[] LoaiSanPham = SanPham.Split('+');

                DataGridViewCell cellsoluong = dgvdanhsachkhachhang.Rows[i].Cells["soluong"];
                if (cellsoluong != null && !String.IsNullOrEmpty(cellsoluong.Value as String))
                {
                    //Có dữ liệu
                    SoLuong = cellsoluong.Value.ToString();
                }
                else
                {
                    //Null
                    SoLuong = "";

                }

                String[] LoaiSoLuong = SoLuong.Split('+');
                if(SoLuong!="" || (SanPham=="" && SoLuong!=""))//Khác rỗng thì mới so sánh 2 cái với nhau
                {
                    if (LoaiSanPham.Length != LoaiSoLuong.Length) //Số lượng và Sản phẩm phải bằng nhau
                    {
                        MessageBox.Show("Sản phẩm và Số lượng nhập vào không tương đồng");
                        dgvdanhsachkhachhang.Rows[i].Cells["LoaiSP"].Selected = true;
                        dgvdanhsachkhachhang.Rows[i].Cells["LoaiSP"].Style.BackColor = Color.Yellow;
                        dgvdanhsachkhachhang.Rows[i].Cells["soluong"].Style.BackColor = Color.Yellow;
                        return;
                    }
                }
                
                //Kiểm tra giá trị nhập vào ở cột Thanh toán
                DataGridViewCell cellthanhtoan = dgvdanhsachkhachhang.Rows[i].Cells["SoTienThanhToan"];
                if (cellthanhtoan != null && !String.IsNullOrEmpty(cellthanhtoan.Value as String))
                {
                    //Có dữ liệu
                    ThanhToan = cellthanhtoan.Value.ToString();
                    ThanhToan = ThanhToan.Replace(",", "");
                    if (khsp.KiemTralaSo(ThanhToan) == false)
                    {
                        dgvdanhsachkhachhang.Rows[i].Cells["SoTienThanhToan"].Selected = true;
                        dgvdanhsachkhachhang.Rows[i].Cells["SoTienThanhToan"].Style.BackColor = Color.Yellow;
                        fthongbao.Thongbao(1, "Cảnh báo", "Số tiền nhập chưa đúng!");
                        fthongbao.ShowDialog();
                        return;
                    }
                }
                else
                {
                    //Null
                    ThanhToan = "";
                }

            }


            for (int i = 0; i <= n; i++)
            {


                //Xử lý việc tách loại sản phẩm và lưu việc tính tiền
                //////////////////////////////////////////////////////////////
                String SanPham, SoLuong, GhiChu, ThanhToan;
                DataGridViewCell cellsanpham = dgvdanhsachkhachhang.Rows[i].Cells["LoaiSP"];
                if (cellsanpham != null && !String.IsNullOrEmpty(cellsanpham.Value as String))
                {
                    //Có dữ liệu
                    SanPham = cellsanpham.Value.ToString();
                }
                else
                {
                    //Null
                    SanPham = "";

                }
                //Cập nhật lại sản phẩm theo sản phẩm khách mua tuần trước
                khsp.MaKH = int.Parse(dgvdanhsachkhachhang.Rows[i].Cells["MaKH"].Value.ToString());
                khsp.SanPham = SanPham;
                if (SanPham != "")
                { //chỉ xét có sản phẩm trong ô thì mới cập nhật lại
                    if (msql.CapnhatSanPham_chomoiKhachHang(khsp))
                    { }

                }


                String[] LoaiSanPham = SanPham.Split('+');

                DataGridViewCell cellsoluong = dgvdanhsachkhachhang.Rows[i].Cells["soluong"];
                if (cellsoluong != null && !String.IsNullOrEmpty(cellsoluong.Value as String))
                {
                    //Có dữ liệu
                    SoLuong = cellsoluong.Value.ToString();
                }
                else
                {
                    //Null
                    SoLuong = "";

                }

                String[] LoaiSoLuong = SoLuong.Split('+');

                //xét việc lưu Khách hàng trên nhiều sản phẩm
                DataGridViewCell cellghichu = dgvdanhsachkhachhang.Rows[i].Cells["ghichu"];
                if (cellghichu != null && !String.IsNullOrEmpty(cellghichu.Value as String))
                {
                    //Có dữ liệu
                    GhiChu = cellghichu.Value.ToString();
                }
                else
                {
                    //Null
                    GhiChu = "";

                }
                khsp.Ghichu = GhiChu;

                DataGridViewCell cellthanhtoan = dgvdanhsachkhachhang.Rows[i].Cells["SoTienThanhToan"];
                if (cellthanhtoan != null && !String.IsNullOrEmpty(cellthanhtoan.Value as String))
                {
                    //Có dữ liệu
                    ThanhToan = cellthanhtoan.Value.ToString();
                    ThanhToan = ThanhToan.Replace(",", "");
                }
                else
                {
                    //Null
                    ThanhToan = "";
                }



                //Cập nhật việc Thanh toán theo LIst ko cần quan tâm đến Số lượng và Sản phẩm
                if (ThanhToan != "")
                {
                    khsp.MaNV = MaNhanVien;
                    khsp.NgayThanhToan = Convert.ToDateTime(dateNgayMua.Value.ToShortDateString());
                    khsp.NgayMua = khsp.NgayThanhToan;
                    khsp.SoTienThanhToan = int.Parse(ThanhToan);
                    //Kiểm tra khách hàng đã thanh toán vào ngày này chưa
                    //Nếu chưa thì Insert còn rồi thì Update
                    //lưu ý: chỉ Update khách nào đã Thanh toán
                    if (msql.KiemTraThanhToan(khsp) == 0)//=0 là mới (chưa thanh toán)
                    {
                        msql.LuuSoTienKhachThanhToan(khsp);
                    }
                    else
                    { //Ngược lại là Update Thanh toán
                        //Nếu có trả trước trong ngày thì ccộng vào chung với đợt sau luôn
                        double SoTienThanhToanthem = 0;
                        SoTienThanhToanthem = msql.SelectSoTienThanhToan(khsp);
                        khsp.SoTienThanhToan = khsp.SoTienThanhToan + SoTienThanhToanthem;
                        if (msql.CapNhatThanhToan(khsp)) { }//OK}
                    }
                    //Tính tổng Thanh toán
                    TongThanhToan += int.Parse(ThanhToan);



                    //Tính Tổng Tiền Khách Thanh toán theo tháng
                    //Kiểm tra dữ liệu tháng hiện tại đã có trong bảng TONGKHTHANHTOAN hay chưa, nếu chưa thì Insert còn lại Update
                    khsp.Thang = dateNgayMua.Value.Month.ToString();
                    khsp.Nam = dateNgayMua.Value.Year.ToString();
                    khsp.ThanhTien = msql.TongTienKH_ThanhToan_theoThang(khsp);
                    if (msql.KiemTraTongTienKH_ThanhToan_theoThang(khsp) == 0) //=0 là chưa có
                    {
                        //Insert
                        msql.InsertTongTienKH_ThanhToan_theoThang(khsp);
                    }
                    else
                    {
                        //Update
                        msql.UpdateTongTienKH_ThanhToan_theoThang(khsp);
                    }

                    //Tổng tiền Khách nợ (Công Nợ) = (Tổng Mua SP - Tổng thanh toán) theo tháng
                    //Lấy công nợ của tháng trước
                    if (khsp.Thang == "1")
                    {
                        khsp.Thangtruoc = "12";
                        khsp.Namtruoc = (int.Parse(khsp.Nam) - 1).ToString();
                    }
                    else
                    {
                        khsp.Thangtruoc = (int.Parse(khsp.Thang) - 1).ToString();
                        khsp.Namtruoc = khsp.Nam;
                    }
                    //Tính tổng tien Công nợ= (TổngMuaSP - TổngThanhToan + TổngCongNoThangtruoc)
                    tienmuasp = 0;
                    tienthanhtoan = 0;
                    tiencongnothangtruoc = 0;
                    if (msql.KiemTraTongTienKH_MuaSP_theoThang(khsp) != 0)
                        tienmuasp = msql.TongTienKH_MuaSP_theoThang(khsp);
                    if (msql.KiemTraTongTienKH_ThanhToan_theoThang(khsp) != 0)
                        tienthanhtoan = msql.TongTienKH_ThanhToan_theoThang(khsp);
                    if (msql.KiemTraTongTienKH_CongNo_theoThangtruoc(khsp) != 0)
                        tiencongnothangtruoc = msql.TongTienKH_CongNo_theoThangTruoc(khsp);
                    khsp.ThanhTien = tienmuasp - tienthanhtoan + tiencongnothangtruoc;
                    //Kiểm tra dũ liệu theo tháng hiện tại đã có trong TONGKHCONGNO hay chưa
                    if (msql.KiemTraTongTienKH_CongNo_theoThang(khsp) == 0) //==0 là chưa có
                    {
                        //Insert
                        msql.InsertTongTienKH_CongNo_theoThang(khsp);
                    }
                    else
                    {
                        //Update
                        msql.UpdateTongTienKH_CongNo_theoThang(khsp);
                    }



                }



                //Kiểm tra trước khi thêm
                //Nếu có số lượng và sản phẩm thì mới lưu còn ko thì bỏ qua khách hàng trống
                if (SanPham != "" && SoLuong != "")
                {
                    for (int j = 0; j <= LoaiSanPham.Length - 1; j++)
                    {
                        //Lấy giá Sản phẩm và giá chiết khấu
                        double GiaSanPham = msql.LayGiaSanPham(LoaiSanPham[j]);
                        double GiaChietKhau = msql.LayGiaChietKhau(khsp.MaKH, LoaiSanPham[j]);
                        //Insert nhiều Sản phẩm tương ứng từng dòng trên từng sản phẩm
                        khsp.MaNV = MaNhanVien;
                        khsp.MaSP = LoaiSanPham[j];
                        khsp.NgayMua = Convert.ToDateTime(dateNgayMua.Value.ToShortDateString());
                        khsp.Soluong = int.Parse(LoaiSoLuong[j]);
                        khsp.Gia_SP_NgayMua = GiaSanPham;
                        khsp.Gia_Chietkhau_NgayMua = GiaChietKhau;
                        khsp.ThanhTien = khsp.Soluong * (GiaSanPham + GiaChietKhau);
                        //Gọi hàm Thêm Số lượng từ class MinhSQL
                        if (msql.KiemTraMuaSP(khsp) == 0) //=0 là hôm ấy chưa mua
                        {
                            if (msql.ThemSoLuong(khsp))
                                btnLuu.Enabled = false;
                        }
                        else
                        {
                            //fthongbao.Thongbao(2, "Thông tin", "Khách hàng đã mua rồi");
                            //fthongbao.ShowDialog();
                            //return;  //Nếu đã mua lẻ rồi thì thông báo và bỏ qua thôi
                            //Cập nhật số lượng và thành tiền là OK ==>nếu đã có rồi thì update như vậy
                            //có rồi thì select số lượng ra trước
                            int soluongtruoc = (int)msql.SelectSoLuongMuatruoccungngay(khsp);
                            khsp.Soluong = khsp.Soluong + soluongtruoc;
                            khsp.ThanhTien = khsp.Soluong * (GiaSanPham + GiaChietKhau);
                            if (msql.UpdateMuahangnhieulantrongngay(khsp))
                                btnLuu.Enabled = false;

                        }


                        //Tính Tổng Tiền Khách Mua Sản Phẩm theo tháng
                        //Kiểm tra dữ liệu tháng hiện tại đã có trong bảng TONGKHMUASP hay chưa, nếu chưa thì Insert còn lại Update
                        khsp.Thang = dateNgayMua.Value.Month.ToString();
                        khsp.Nam = dateNgayMua.Value.Year.ToString();
                        khsp.ThanhTien = msql.TongTienKH_MuaSP_theoThang(khsp);
                        if (msql.KiemTraTongTienKH_MuaSP_theoThang(khsp) == 0) //=0 là chưa có
                        {
                            //Insert
                            msql.InsertTongTienKH_MuaSP_theoThang(khsp);
                        }
                        else
                        {
                            //Update
                            msql.UpdateTongTienKH_MuaSP_theoThang(khsp);
                        }



                        //Tổng tiền Khách nợ (Công Nợ) = (Tổng Mua SP - Tổng thanh toán) theo tháng
                        //Lấy công nợ của tháng trước
                        if (khsp.Thang == "1")
                        {
                            khsp.Thangtruoc = "12";
                            khsp.Namtruoc = (int.Parse(khsp.Nam) - 1).ToString();
                        }
                        else
                        {
                            khsp.Thangtruoc = (int.Parse(khsp.Thang) - 1).ToString();
                            khsp.Namtruoc = khsp.Nam;
                        }
                        //Tính tổng tien Công nợ= (TổngMuaSP - TổngThanhToan + TổngCongNoThangtruoc)
                        tienmuasp = 0;
                        tienthanhtoan = 0;
                        tiencongnothangtruoc = 0;
                        if (msql.KiemTraTongTienKH_MuaSP_theoThang(khsp) != 0)
                            tienmuasp = msql.TongTienKH_MuaSP_theoThang(khsp);
                        if (msql.KiemTraTongTienKH_ThanhToan_theoThang(khsp) != 0)
                            tienthanhtoan = msql.TongTienKH_ThanhToan_theoThang(khsp);
                        if (msql.KiemTraTongTienKH_CongNo_theoThangtruoc(khsp) != 0)
                            tiencongnothangtruoc = msql.TongTienKH_CongNo_theoThangTruoc(khsp);
                        khsp.ThanhTien = tienmuasp - tienthanhtoan + tiencongnothangtruoc;
                        //Kiểm tra dũ liệu theo tháng hiện tại đã có trong TONGKHCONGNO hay chưa
                        if (msql.KiemTraTongTienKH_CongNo_theoThang(khsp) == 0) //==0 là chưa có
                        {
                            //Insert
                            msql.InsertTongTienKH_CongNo_theoThang(khsp);
                        }
                        else
                        {
                            //Update
                            msql.UpdateTongTienKH_CongNo_theoThang(khsp);
                        }





                        //Tính tổng số lượng Khách mua theo từng sản phẩm
                        //duyet qua tat ca các loại sản phẩm để tính tổng cho tung loai
                        for (int k = 0; k < dgvTongSanLuong.RowCount; k++)
                        {
                            if(LoaiSanPham[j]==dgvTongSanLuong.Rows[k].Cells["MaSPTongSanLuong"].Value.ToString())
                                TongSanLuong[k] += int.Parse(LoaiSoLuong[j]);
                        }
                                               
                    }
                }
                


            }
            //////////////////////////////////////////////////////////
            //Thông tin về ThemXoaSua
            FormThongTin ftt = new FormThongTin();
            ftt.ShowDialog();

            //ghi Tổng sản lượng vào dgvTongSanLuong
            for (int k = 0; k < dgvTongSanLuong.RowCount; k++)
                dgvTongSanLuong.Rows[k].Cells["SoLuongTongSanLuong"].Value = TongSanLuong[k] + "  kg";

            labelTongthanhtoan.Text = "Tổng thanh toán: " + msql.ChuyenSangTien(TongThanhToan);
        } //Ket thuc Nut LƯU

        private void timer2_Tick(object sender, EventArgs e)
        {
            panel1.Width += 20;
            panel1.Height += 10;
            if (panel1.Height >= 140)
            {

                timer2.Enabled = false;
            }
        }

        private void labelHover_MouseHover(object sender, EventArgs e)
        {
            labelHover.Font = new Font("Times New Roman", 15);
            labelHover.ForeColor = Color.Yellow;
            panel1.Width = 0;
            panel1.Height = 0;
            timer2.Enabled = true;
            panel1.Visible = true;
            labelTenKH.Visible = true;

            //Đưa dữ liệu vào GridView
            String MaKH = "";
            DataGridViewCell cellkh = dgvdanhsachkhachhang.CurrentRow.Cells["MaKH"];
            MaKH = cellkh.Value.ToString();
            dgvDonGia.DataSource = msql.LayDonGia_KH(MaKH);
            labelTenKH.Text = dgvdanhsachkhachhang.CurrentRow.Cells["TenCuaHang"].Value.ToString();
            //Tính thành tiền
            for (int i = 0; i <= dgvDonGia.RowCount - 1; i++)
            {
                String MaSP = "";
                DataGridViewCell celldongiasp = dgvDonGia.Rows[i].Cells["MaSP"];
                if (celldongiasp != null && !String.IsNullOrEmpty(celldongiasp.Value as String))
                {
                    //Có dữ liệu
                    MaSP = celldongiasp.Value.ToString();
                }
                else
                {
                    //Null
                    MaSP = "";

                }
                String GiaChietKhau = "";
                DataGridViewCell celldongiack = dgvDonGia.Rows[i].Cells["GiaChietKhau"];
                GiaChietKhau = celldongiack.FormattedValue.ToString();
                GiaChietKhau = GiaChietKhau.Replace(".00", "");
                double dongiasp = msql.LayGiaSanPham(MaSP);
                double giatien = 0;
                giatien = dongiasp + double.Parse(GiaChietKhau);
                String strgiatien = msql.ChuyenSangTien(giatien);
                dgvDonGia.Rows[i].Cells["ThanhTienCKSP"].Value = strgiatien;
            }




        }

        private void pictureBoxHover_MouseHover(object sender, EventArgs e)
        {
            labelHover_MouseHover(sender, e);
        }

        private void timer3_Tick(object sender, EventArgs e)
        {
            panel1.Width -= 20;
            panel1.Height -= 10;
            if (panel1.Height <= 0)
            {
                timer3.Enabled = false;
            }
        }

        private void labelHover_MouseLeave(object sender, EventArgs e)
        {
            timer3.Enabled = true;
            labelHover.Font = new Font("Times New Roman", 14);
            labelHover.ForeColor = Color.White;
            labelTenKH.Visible = false;
        }

        private void pictureBoxHover_MouseLeave(object sender, EventArgs e)
        {
            labelHover_MouseLeave(sender, e);
        }

        private void dgvdanhsachkhachhang_CellEndEdit(object sender, DataGridViewCellEventArgs e)
        {
            //Phân cách hàng ngàn cho cột Thanh toán

            if (e.ColumnIndex == 3)
            {
                String sThanhToan;
                DataGridViewCell cellThanhToan = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["SoTienThanhToan"];
                if (cellThanhToan != null && !String.IsNullOrEmpty(cellThanhToan.Value as String))
                {
                    //Có dữ liệu
                    sThanhToan = cellThanhToan.Value.ToString();
                }
                else
                {
                    //Null
                    sThanhToan = "";

                }
                if (sThanhToan != "")
                {
                    sThanhToan = sThanhToan.Replace(",", "");
                    int cd = sThanhToan.Length;
                    if (cd > 3 && cd <= 6)
                    {
                        sThanhToan = sThanhToan.Insert(cd - 3, ",");
                    }
                    if (cd > 6 && cd <= 9)
                    {
                        sThanhToan = sThanhToan.Insert(cd - 3, ",");
                        sThanhToan = sThanhToan.Insert(cd - 6, ",");
                    }
                    if (cd > 9 && cd <= 12)
                    {
                        sThanhToan = sThanhToan.Insert(cd - 3, ",");
                        sThanhToan = sThanhToan.Insert(cd - 6, ",");
                        sThanhToan = sThanhToan.Insert(cd - 9, ",");
                    }
                    dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["SoTienThanhToan"].Value = sThanhToan;
                }
                
            }

            
            
            //Xét việc nhập liệu Loại Sp
            if (e.ColumnIndex == 6)
            {
                String SanPham;
                DataGridViewCell cellsanpham = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["LoaiSP"];
                if (cellsanpham != null && !String.IsNullOrEmpty(cellsanpham.Value as String))
                {
                    //Có dữ liệu
                    SanPham = cellsanpham.Value.ToString();
                }
                else
                {
                    //Null
                    SanPham = "";

                }
                String[] LoaiSanPham = SanPham.Split('+');
                int dem = 0;
                for (int i = 0; i <= LoaiSanPham.Length - 1; i++)
                {
                    dem = 0;
                    for (int j = 0; j <= strMaSP.Length - 1; j++)
                    {
                        if (LoaiSanPham[i] == strMaSP[j])
                        {
                            dem++;
                            //break;
                        }
                    }
                    //Kiem tra
                    if (dem == 0)
                    {
                        MessageBox.Show("Sản phẩm nhập vào không đúng");
                        dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["LoaiSP"].Style.BackColor = Color.Yellow;
                    }
                    else
                    {
                        dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["LoaiSP"].Style.BackColor = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["ThanhTien"].Style.BackColor;
                    }
                }

            }


            //tính thành tiền
            //MessageBox.Show(e.ColumnIndex.ToString());
            if (e.ColumnIndex == 1)
            {
                String SanPham, SoLuong;
                DataGridViewCell cellsanpham = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["LoaiSP"];
                if (cellsanpham != null && !String.IsNullOrEmpty(cellsanpham.Value as String))
                {
                    //Có dữ liệu
                    SanPham = cellsanpham.Value.ToString();
                }
                else
                {
                    //Null
                    SanPham = "";

                }
                String[] LoaiSanPham = SanPham.Split('+');

                DataGridViewCell cellsoluong = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["soluong"];
                if (cellsoluong != null && !String.IsNullOrEmpty(cellsoluong.Value as String))
                {
                    //Có dữ liệu
                    SoLuong = cellsoluong.Value.ToString();
                }
                else
                {
                    //Null
                    SoLuong = "";

                }
                //Loại trường hợp rỗng
                if (SoLuong == "")
                    return;
                String[] LoaiSoLuong = SoLuong.Split('+');
                if (LoaiSanPham.Length != LoaiSoLuong.Length) //Số lượng và Sản phẩm phải bằng nhau
                {
                    MessageBox.Show("Sản phẩm và Số lượng nhập vào không tương đồng");
                    dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["LoaiSP"].Style.BackColor = Color.Yellow;
                    dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["soluong"].Style.BackColor = Color.Yellow;
                    return;
                }
                else
                {
                    dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["LoaiSP"].Style.BackColor = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["ThanhTien"].Style.BackColor;
                    dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["soluong"].Style.BackColor = dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["ThanhTien"].Style.BackColor;
                }
                
                //Tinh thanh tien
                int MaKH = int.Parse(dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["MaKH"].Value.ToString());
                double ThanhTien = 0;
                for (int j = 0; j <= LoaiSanPham.Length - 1; j++)
                {
                    //Lấy giá Sản phẩm và giá chiết khấu
                    double GiaSanPham = msql.LayGiaSanPham(LoaiSanPham[j]);
                    double GiaChietKhau = msql.LayGiaChietKhau(MaKH, LoaiSanPham[j]);
                    int Soluong = int.Parse(LoaiSoLuong[j]);
                    ThanhTien += Soluong * (GiaSanPham + GiaChietKhau);
                }
                String strThanhTien = msql.ChuyenSangTien(ThanhTien);
                dgvdanhsachkhachhang.Rows[e.RowIndex].Cells["ThanhTien"].Value = strThanhTien;
            }
        }

        private void button_Thoat_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void dgvdanhsachkhachhang_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            labelTenKhachHangdangchon.Text = "Khách hàng: " + dgvdanhsachkhachhang.CurrentRow.Cells["TenCuaHang"].Value.ToString();
            //View Đơn giá
            //Đưa dữ liệu vào GridView
            String MaKH = "";
            DataGridViewCell cellkh = dgvdanhsachkhachhang.CurrentRow.Cells["MaKH"];
            MaKH = cellkh.Value.ToString();
            dgvDonGiaKhachHang.DataSource = msql.TableDonGia();
            for (int i = 0; i <= dgvDonGiaKhachHang.RowCount - 1; i++)
            {
                String MaSP = "";
                DataGridViewCell celldongiack = dgvDonGiaKhachHang.Rows[i].Cells["MaSP1"];
                if (celldongiack != null && !String.IsNullOrEmpty(celldongiack.Value as String))
                {
                    //Có dữ liệu
                    MaSP = celldongiack.Value.ToString();
                }
                else
                {
                    //Null
                    MaSP = "";
                }
                String GiaSP = "";
                DataGridViewCell celldongiasp = dgvDonGiaKhachHang.Rows[i].Cells["GiaSP"];
                GiaSP = celldongiasp.FormattedValue.ToString();
                GiaSP= GiaSP.Replace(".00", "");
                double dongiack = msql.LayGiaSanPham_ChietKhau(MaKH, MaSP);
                double giatien = 0;
                giatien = dongiack + double.Parse(GiaSP);
                String strgiatien = msql.ChuyenSangTien(giatien);
                dgvDonGiaKhachHang.Rows[i].Cells["ThanhTienCKSP1"].Value = strgiatien;
            }
        }

        private void dateNgayMua_ValueChanged(object sender, EventArgs e)
        {
            String Ngay;
            Ngay = String.Format("{0:dd/MM/yyyy}", dateNgayMua.Value);
            labelTieudeNgay.Text = "Ngày " + Ngay;
            txtNgayMua.Text = Ngay;
        }

        

    

    }
}
